/*
 * Copyright 2011 Focus Technology, Co., Ltd. All rights reserved.
 */
package com.tfc.analysis.process;

import java.util.Map;
import java.util.Set;

import com.tfc.analysis.fragment.AbstractFragment;
import com.tfc.analysis.fragment.HTMLFragment;

/**
 * 对文本进行高亮处理。
 * 
 * @author taofucheng
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
public class Highlight extends BaseFinderProcess {
	/**
	 * 将文本中的关键词提取出来。
	 * 
	 * @param wordsTree
	 *            关键词库树
	 * @param text
	 *            待处理的文本
	 * @param fragment
	 *            替换的规则，如果没有指定，则使用new HTMLFragment("&lt;font color='red'&gt;",
	 *            "&lt;/font&gt;")
	 * @param minLen
	 *            指定的最短的词的长度
	 * @return 返回提取的关键词或null
	 */
	public String process(Map<String, Map> wordsTree, String text, AbstractFragment fragment, int minLen) {
		if (fragment == null) {
			fragment = new HTMLFragment("<font color='red'>", "</font>");
		}
		Map<StringBuilder, Set<String>> ret = (Map<StringBuilder, Set<String>>) super.process(wordsTree, text, fragment, minLen);
		if (ret == null || ret.isEmpty()) {
			return text;
		} else {
			return ret.keySet().iterator().next().toString();
		}
	}

}
